package com.selen.service;

import com.github.pagehelper.PageInfo;
import com.selen.dto.PageDTO;
import com.selen.dto.SchoolInsertDTO;
import com.selen.dto.SchoolUpdateDTO;
import com.selen.entities.School;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author Selen
 */
@Service
public interface SchoolService {

    /**
     * 插入一条学校记录
     * @param dto 学校插入数据DTO
     * @return 插入变动记录数
     */
    int insert(SchoolInsertDTO dto);

    /**
     * 按主键查询一条学校记录
     * @param id 主键
     * @return 主键对应的唯一一条学校记录
     */
    School selectById(Long id);

    /**
     * 按主键修改一条学校记录
     * @param dto 修改对象
     * @return 修改变动记录数
     */
    int updateById(SchoolUpdateDTO dto);

    /**
     * 按主键逻辑删除一条记录
     * @param id 主键
     * @return 逻辑删除记录变动数
     */
    int logicDeleteById(Long id);

    /**
     * 批量逻辑删除
     * @param ids 主键集合
     * @return 逻辑删除记录变动数
     */
    int logicDeleteByIds(List<Long> ids);

    /**
     * 全查询
     * @return 所有记录
     */
    List<School> selectAll();

    /**
     * 分页查询
     * @param dto 分页专用DTO
     * @return 分页查询结果
     */
    PageInfo<School> page(PageDTO dto);

}
